import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import Components from 'unplugin-vue-components/vite'
import {
  // AntDesignVueResolver,
  // ElementPlusResolver,
  VantResolver
} from 'unplugin-vue-components/resolvers'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    //     配置:
    // 1.dts: false 不自动生成组件类型文件导入包后就能识别2.importStyle: false 不自动导入样式已经在 main.ts 导入
    // 默认 components 文件下也会自动注册
    Components({
      // 指定组件目录
      dirs: ['src/components'],
      // 自动导入组件
      extensions: ['vue'],
      // 深度搜索子目录
      deep: true,
      // 生成类型声明文件
      // dts: true,
      // 允许子目录作为组件前缀
      directoryAsNamespace: true,
      // 忽略的文件名
      exclude: [
        /[\\/]node_modules[\\/]/,
        /[\\/]\.git[\\/]/,
        /[\\/]\.nuxt[\\/]/
      ],
      dts: false, //不去动态生成类型声明文件
      resolvers: [
        VantResolver({
          importStyle: false //去除引入重复css
        })
      ] //vant组件自动注册 不用手动在头部引入vant组件
    }),
    vueDevTools()
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})
